/**
 * 
 */
package org.adorsys.aderp.cash.work.encashment;

import java.util.List;

import org.adorsys.aderp.cash.domain.CashReceipt;
import org.adorsys.aderp.cash.domain.CashRegItem;
import org.adorsys.aderp.cash.domain.CashRegister;

/**
 * @author Boris Waguia
 * 
 */
public interface Encashment {
	/**
	 * the cashier's single idenfier working on.
	 */
	public String getCashier();
	/**
	 * the cashregister
	 * @return
	 */
	public CashRegister getCashRegister();
	public void setCashRegister(CashRegister cashRegister);
	/**
	 * add a cash register item to the cashRegItem list, and update cashReceipt's values.
	 * @param cashRegItem
	 */
	public void addCashRegItem(CashRegItem cashRegItem);
	/**
	 * get cash reg item
	 * @return cashRegItems
	 */
	public List<CashRegItem> getCashRegItems();
	/**
	 * get a non managed cash receipt bean.
	 * this bean, will in most times, be persited or printed.
	 * @return
	 */
	public CashReceipt getCashReceipt();
	/**
	 * a method to init the bean.
	 */
	public void init();
	
}
